package com.niiwoo.civet.mobile.vo.response.recharge;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 充值账户类型
 */
@Setter
@Getter
@ToString
@ApiModel("充值账户")
public class RechargeAccountResponseVO implements Serializable{

    @ApiModelProperty(value = "最近充值账号类型")
    private Byte latelyRechargeAccountRole;

    @ApiModelProperty(value = "账户列表")
    private List<AccountTypeListVO> accountTypeListVOList;
    
    @ApiModelProperty(value = "银行卡信息")
    private BankCardInfo bankCardInfo ;

    @ApiModelProperty(value = "限额说明")
    private LimitRechargeReadme limitRechargeReadme ;



    @Setter
    @Getter
    @ToString
    public class AccountTypeListVO {

        @ApiModelProperty(value = "账户ID")
        private Long accountId;

        @ApiModelProperty(value = "账户类型")
        private Byte accountRole;

        @ApiModelProperty(value = "会员激活状态0未激活，1已激活")
        private byte isActived;

        @ApiModelProperty(value = "可用余额")
        private BigDecimal availableBalance;

    }

    @Setter
    @Getter
    @ToString
    public class BankCardInfo{

        @ApiModelProperty(value = "是否有待审核的换绑申请")
        private boolean hasRebindApply;

        @ApiModelProperty(value = "银行卡账号")
        private String bankAccountNo;

        /*@ApiModelProperty(value = "银行编码")
        private String bankCode;*/

        @ApiModelProperty(value = "银行名称")
        private String bankName;

        @ApiModelProperty(value = "单笔最大限额")
        private BigDecimal dealMaxTrade;

        @ApiModelProperty(value = "单日最大限额")
        private BigDecimal dayMaxTrade;
        @ApiModelProperty(value = "单月最大限额")
        private BigDecimal monthMaxTrade;

        @ApiModelProperty(value = "银行类别ID")
        private Long bankTypeId;

        @ApiModelProperty(value = "银行卡code-getRechargeForm这个接口会用到",required = true)
        private String bankCode;

        @ApiModelProperty(value = "支付通道id-getRechargeForm这个接口会用到",required = true)
        private String payChannelCode;

        @ApiModelProperty(value = "引导换绑状态 0：否 1：是")
        private Byte changeStatus;

        @ApiModelProperty(value ="是否维护中，false-否；true-是")
        private Boolean isMaintain;
    }

    @Setter
    @Getter
    @ToString
    public class LimitRechargeReadme{

        @ApiModelProperty(value = "是否支持银行快捷充值 true:支持，false：不支持")
        private boolean isSupperPay;

        @ApiModelProperty(value = "当天剩余金额，如果为0，当天则不能再充值")
        private BigDecimal daySurplusMoney;

        @ApiModelProperty(value = "当天剩余金额，如果为0，当月则不能再充值")
        private BigDecimal monthSurplusMoney;
    }

}
